package com.xdf.whiteaccount.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 版本号：20240401
 * 由 chanchaw 创建于 2024-4-26 15:07:24，实现功能如下：
 * 1. 实现接口 Serializable
 * 2. 无参构造函数
 * 3. 建造者模式
 * 4. getter,setter,toString()
 * 染厂白坯单据主表
 */
public class DyeGreyMain implements Serializable {
    public DyeGreyMain() {}
    private static final long serialVersionUID = 1L;

    private Integer id;//自增主键
    private String provider;//供应商，本厂入库时供应商是本厂，外购入库时则是供应商
    private String client;//销售出库类型时的客户
    private String billCode;//单据编号
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private java.util.Date billDate;//单据日期，默认当天
    private String billType;//单据类型：织造发染厂（本厂织造白坯入库给染厂，既是发货单又是入库单）、外购入库（从其他织造厂购买）、盘点单、销售出库（本厂白坯直接销售给客户）、染厂领料
    private String remark;//备注
    private Integer state;//状态，1有效，0作废，-1删除
    private Float seq;//排序序号
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private java.util.Date createTime;//创建时间，DB自动填充
    private String createUser;//创建人
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private java.util.Date lastTime;//最后一次修改时间
    private String lastUser;//最后一次修改人
    private BigDecimal price;//单价
    private String chargePerson;//经手人
    private String numberPlate;//车牌号
    private String receive;//收货单位
    private String sendRemark;//发货备注
    private String millRemark;//本厂备注
    private Integer showClient;//默认1显示客户，0隐藏客户
    private Integer showPrice;//默认1显示客户，0隐藏客户

    public Integer getId(){return this.id;}
    public void setId(Integer id){this.id = id;}
    public String getProvider(){return this.provider;}
    public void setProvider(String provider){this.provider = provider;}
    public String getClient(){return this.client;}
    public void setClient(String client){this.client = client;}
    public String getBillCode(){return this.billCode;}
    public void setBillCode(String billCode){this.billCode = billCode;}
    public java.util.Date getBillDate(){return this.billDate;}
    public void setBillDate(java.util.Date billDate){this.billDate = billDate;}
    public String getBillType(){return this.billType;}
    public void setBillType(String billType){this.billType = billType;}
    public String getRemark(){return this.remark;}
    public void setRemark(String remark){this.remark = remark;}
    public Integer getState(){return this.state;}
    public void setState(Integer state){this.state = state;}
    public Float getSeq(){return this.seq;}
    public void setSeq(Float seq){this.seq = seq;}
    public java.util.Date getCreateTime(){return this.createTime;}
    public void setCreateTime(java.util.Date createTime){this.createTime = createTime;}
    public String getCreateUser(){return this.createUser;}
    public void setCreateUser(String createUser){this.createUser = createUser;}
    public java.util.Date getLastTime(){return this.lastTime;}
    public void setLastTime(java.util.Date lastTime){this.lastTime = lastTime;}
    public String getLastUser(){return this.lastUser;}
    public void setLastUser(String lastUser){this.lastUser = lastUser;}
    public BigDecimal getPrice(){return this.price;}
    public void setPrice(BigDecimal price){this.price = price;}
    public String getChargePerson(){return this.chargePerson;}
    public void setChargePerson(String chargePerson){this.chargePerson = chargePerson;}
    public String getNumberPlate(){return this.numberPlate;}
    public void setNumberPlate(String numberPlate){this.numberPlate = numberPlate;}
    public String getReceive(){return this.receive;}
    public void setReceive(String receive){this.receive = receive;}
    public String getSendRemark(){return this.sendRemark;}
    public void setSendRemark(String sendRemark){this.sendRemark = sendRemark;}
    public String getMillRemark(){return this.millRemark;}
    public void setMillRemark(String millRemark){this.millRemark = millRemark;}
    public Integer getShowClient(){return this.showClient;}
    public void setShowClient(Integer showClient){this.showClient = showClient;}
    public Integer getShowPrice(){return this.showPrice;}
    public void setShowPrice(Integer showPrice){this.showPrice = showPrice;}


    @Override
    public String toString() {
        return "DyeGreyMain{" +
        ",id='" + id + '\'' +
        ",provider='" + provider + '\'' +
        ",client='" + client + '\'' +
        ",billCode='" + billCode + '\'' +
        ",billDate='" + billDate + '\'' +
        ",billType='" + billType + '\'' +
        ",remark='" + remark + '\'' +
        ",state='" + state + '\'' +
        ",seq='" + seq + '\'' +
        ",createTime='" + createTime + '\'' +
        ",createUser='" + createUser + '\'' +
        ",lastTime='" + lastTime + '\'' +
        ",lastUser='" + lastUser + '\'' +
        ",price='" + price + '\'' +
        ",chargePerson='" + chargePerson + '\'' +
        ",numberPlate='" + numberPlate + '\'' +
        ",receive='" + receive + '\'' +
        ",sendRemark='" + sendRemark + '\'' +
        ",millRemark='" + millRemark + '\'' +
        ",showClient='" + showClient + '\'' +
        ",showPrice='" + showPrice + '\'' +
        '}';
    }

    public static class Builder{
        private Integer id;
        private String provider;
        private String client;
        private String billCode;
        private java.util.Date billDate;
        private String billType;
        private String remark;
        private Integer state;
        private Float seq;
        private java.util.Date createTime;
        private String createUser;
        private java.util.Date lastTime;
        private String lastUser;
        private BigDecimal price;
        private String chargePerson;
        private String numberPlate;
        private String receive;
        private String sendRemark;
        private String millRemark;
        private Integer showClient;
        private Integer showPrice;

        public Builder id(Integer id){this.id = id;return this;}
        public Builder provider(String provider){this.provider = provider;return this;}
        public Builder client(String client){this.client = client;return this;}
        public Builder billCode(String billCode){this.billCode = billCode;return this;}
        public Builder billDate(java.util.Date billDate){this.billDate = billDate;return this;}
        public Builder billType(String billType){this.billType = billType;return this;}
        public Builder remark(String remark){this.remark = remark;return this;}
        public Builder state(Integer state){this.state = state;return this;}
        public Builder seq(Float seq){this.seq = seq;return this;}
        public Builder createTime(java.util.Date createTime){this.createTime = createTime;return this;}
        public Builder createUser(String createUser){this.createUser = createUser;return this;}
        public Builder lastTime(java.util.Date lastTime){this.lastTime = lastTime;return this;}
        public Builder lastUser(String lastUser){this.lastUser = lastUser;return this;}
        public Builder price(BigDecimal price){this.price = price;return this;}
        public Builder chargePerson(String chargePerson){this.chargePerson = chargePerson;return this;}
        public Builder numberPlate(String numberPlate){this.numberPlate = numberPlate;return this;}
        public Builder receive(String receive){this.receive = receive;return this;}
        public Builder sendRemark(String sendRemark){this.sendRemark = sendRemark;return this;}
        public Builder millRemark(String millRemark){this.millRemark = millRemark;return this;}
        public Builder showClient(Integer showClient){this.showClient = showClient;return this;}
        public Builder showPrice(Integer showPrice){this.showPrice = showPrice;return this;}
        public DyeGreyMain build(){
            return new DyeGreyMain(this);
        }
    }

    public static Builder builder(){return new Builder();}
    public DyeGreyMain(Builder builder){
        this.id = builder.id;
        this.provider = builder.provider;
        this.client = builder.client;
        this.billCode = builder.billCode;
        this.billDate = builder.billDate;
        this.billType = builder.billType;
        this.remark = builder.remark;
        this.state = builder.state;
        this.seq = builder.seq;
        this.createTime = builder.createTime;
        this.createUser = builder.createUser;
        this.lastTime = builder.lastTime;
        this.lastUser = builder.lastUser;
        this.price = builder.price;
        this.chargePerson = builder.chargePerson;
        this.numberPlate = builder.numberPlate;
        this.receive = builder.receive;
        this.sendRemark = builder.sendRemark;
        this.millRemark = builder.millRemark;
        this.showClient = builder.showClient;
        this.showPrice = builder.showPrice;
    }
    /**
     * 自定义代码请写在此处之后
     */
}
